The present invention relates generally to computer devices, and more particularly computer devices arranged to receive handwritten input.
Contemporary computing devices allow users to enter handwritten words (e.g., in cursive handwriting and/or printed handwritten characters) and symbols (e.g., a character in Far East languages). The words and symbols can be used as is, e.g., to function as readable notes and so forth, or can be converted to text for more conventional computer uses. To convert to text, for example, as a user writes strokes representing words or other symbols onto a touch-sensitive computer screen or the like, a handwriting recognizer (e.g., trained with millions of samples, employing a dictionary, context and other rules) is able to convert the handwriting data into dictionary words or symbols. In this manner, users are able to enter textual data without necessarily needing a keyboard.
Ink processing technology uses various data structures to maintain the ink and text entered by a user. For example, one type of data structure includes information in a header and an ink data field that describe the ink (e.g., in coordinates) entered by a user. However, it may be desirable to store additional information in association with an ink word. At the same time, developing a new data structure type to store this information, or adding data to existing data structure types, would cause existing ink programs to fail.
Briefly, the present invention provides a tail structure that enables data to be added to an existing ink word data structure without compromising backwards-compatibility. A previously unused bit in the header data structure is used to indicate to new ink processing programs the existence of extended (supplemental/additional) data, and the size information maintained in the header is adjusted ensure that earlier versions of ink programs do not lose the extended data. Extended data is then added, e.g., effectively appended to a copy of the existing ink word data structure, along with a tail structure that includes information that describes the extended data and the tail structure to the new ink code. For example, the tail structure can include offset and/or other information, along with a version number that provides for future modifications.
In this manner, the tail structure can, for example, include offset information that locates a list of alternate word choices (and possibly other information) effectively appended to the ink word data structure, and another offset that points out a selected one of the alternates. The tail structure also includes information from which the length of the additional data may be determined or derived, so that the additional data and the tail structure (which is fixed in size relative to each version) may be discarded when no longer needed, thereby reclaiming storage space. For example, the size of the appended information may be derived from the offset information in the tail structure used in conjunction with the total size of the data structure (maintained in the header).
Other advantages will become apparent from the following detailed description when taken in conjunction with the drawings, in which: